Composability for Application-Specific Transactional Optimizations
نویسندگان
چکیده
Software Transactional Memory (STM) has made great advances towards acceptance into mainstream programming by promising a programming model that greatly reduces the complexity of writing concurrent programs. Unfortunately, the mechanisms in current STM implementations that enforce the fundamental properties of transactions — atomicity, consistency, and isolation — also introduce considerable performance overhead. This performance impact can be so significant that in practice, programmers are tempted to leverage their knowledge of a specific application to carefully bypass STM calls and instead access shared memory directly. While this technique can be very effective in improving performance, it breaks the consistency and isolation properties of transactions, which have to be handled manually by the programmer for the specific application. It also tends to break another desirable property of transactions: composability. In this paper, we identify the composability problem and propose two STM system extensions to provide transaction composability in the presence of direct shared memory reads by transactions. Our proposed extensions give the programmer a similar level of flexibility and performance when optimizing the STM application as the existing practices, while preserving composability. We evaluate our extensions on several benchmarks on a 16-way SMP. The results show that our extensions provide performance competitive with hand-optimized non-composable techniques, while still maintaining transactional composability.
منابع مشابه
Framework Design for End-to-End Optimization
Framework optimizations capitalize on object dependencies, while framework flexibility and composability demand object independence. This paper shows how to balance these conflicting needs using new design techniques. These techniques embody the observation that common optimizations can be realized by reifying and tuning object interactions. Their application is illustrated for two complex fram...
متن کاملAppears in the Proceedings of the 12 th ECOOP , Brussels , July 1998 Framework Design for End - to - End
Framework optimizations capitalize on object dependencies, while framework exibility and composability demand object independence. This paper shows how to balance these connicting needs using new design techniques. These techniques embody the observation that common optimizations can be realized by reifying and tuning object interactions. Their application is illustrated for two complex framewo...
متن کاملView Transactions and the Relaxation of Consistency Checks in Software Transactional Memory
We present view transactions, a model for relaxed consistency checks in software transactional memory (STM). View transactions always operate on a consistent snapshot of memory but may commit in a different snapshot. They are therefore simpler to reason about, provide opacity and maintain composability. In addition, view transactions avoid many of the overheads associated with previous approach...
متن کاملTransactors: Unifying Transactions and Actors
Composability and deadlock-freedom are important properties that are stated for transactional memory (TM). Commonly, the Semantics of TM requires linearization of transactions. It turns out that linearization of transactions that have cyclic communication brings incomposability and deadlock. Inspired from TM and Actors, this work proposes Transactors that provide facilities of isolation from TM...
متن کاملTransactional Runtime Extensions for Dynamic Language Performance
We propose exposing best-effort atomic execution, as provided by a simple hardware transactional memory (HTM), in a managed runtime’s bytecode interface. Dynamic language implementations built on such a runtime can generate more efficient, code, using speculation to eliminate the overhead and obstructions to optimization incurred by code needed to preserve rarely used language semantics. In thi...
متن کامل